JpaRepository এর save(), findById(), findAll(), deleteById() মেথডের ব্যবহার

Java Technologies - স্প্রিং বুট ওআরএম (Spring Boot ORM) - Spring Boot এর মধ্যে CRUD অপারেশন
185

JpaRepository হলো Spring Data JPA এর একটি ইন্টারফেস, যা ডেটাবেসের সাধারণ CRUD (Create, Read, Update, Delete) অপারেশনগুলো সহজে সম্পন্ন করার জন্য ব্যবহৃত হয়। এটি Hibernate এর উপর ভিত্তি করে কাজ করে এবং ডেটাবেসের সঙ্গে সরাসরি ইন্টিগ্রেশন নিশ্চিত করে।

JpaRepository এর গুরুত্বপূর্ণ মেথডগুলোর মধ্যে save(), findById(), findAll(), এবং deleteById() উল্লেখযোগ্য।


save() মেথড

save() মেথড ডেটাবেসে নতুন ডেটা সঞ্চয় (Insert) করতে বা বিদ্যমান ডেটা আপডেট করতে ব্যবহৃত হয়। এটি একটি Object প্যারামিটার হিসেবে গ্রহণ করে এবং ডেটাবেসে পরিবর্তনগুলো সংরক্ষণ করে।

উদাহরণ:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public Product saveProduct(Product product) {
        return productRepository.save(product); // ডেটা সঞ্চয় বা আপডেট
    }
}

নতুন ডেটা সঞ্চয়:

Product product = new Product();
product.setName("Laptop");
product.setPrice(80000.00);
productService.saveProduct(product);

findById() মেথড

findById() মেথড একটি নির্দিষ্ট id এর ভিত্তিতে ডেটা খুঁজে বের করে। এটি Optional<T> টাইপের রিটার্ন করে, যা নাল (null) ডেটা পরিচালনায় সাহায্য করে।

উদাহরণ:

public Product getProductById(Long id) {
    return productRepository.findById(id)
                             .orElseThrow(() -> new RuntimeException("Product not found")); // নির্দিষ্ট ডেটা খুঁজে বের করা
}

ডেটা ফেচ:

Product product = productService.getProductById(1L);
System.out.println(product.getName());

findAll() মেথড

findAll() মেথড ডেটাবেসের সমস্ত ডেটা রিটার্ন করে। এটি সাধারণত একটি List<T> টাইপ রিটার্ন করে।

উদাহরণ:

public List<Product> getAllProducts() {
    return productRepository.findAll(); // সমস্ত ডেটা রিটার্ন
}

সমস্ত ডেটা প্রিন্ট করা:

List<Product> products = productService.getAllProducts();
products.forEach(product -> System.out.println(product.getName()));

deleteById() মেথড

deleteById() মেথড একটি নির্দিষ্ট id এর ভিত্তিতে ডেটা ডিলিট করতে ব্যবহৃত হয়।

উদাহরণ:

public void deleteProductById(Long id) {
    productRepository.deleteById(id); // ডেটা ডিলিট
}

ডেটা ডিলিট:

productService.deleteProductById(1L);
System.out.println("Product deleted successfully.");

উদাহরণ প্রজেক্ট

Entity ক্লাস:

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Double price;

    // Getters and Setters
}

Repository ইন্টারফেস:

import org.springframework.data.jpa.repository.JpaRepository;

public interface ProductRepository extends JpaRepository<Product, Long> {
}

Service ক্লাস:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public Product saveProduct(Product product) {
        return productRepository.save(product);
    }

    public Product getProductById(Long id) {
        return productRepository.findById(id)
                                 .orElseThrow(() -> new RuntimeException("Product not found"));
    }

    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }

    public void deleteProductById(Long id) {
        productRepository.deleteById(id);
    }
}

Controller ক্লাস:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/products")
public class ProductController {

    @Autowired
    private ProductService productService;

    @PostMapping
    public Product createProduct(@RequestBody Product product) {
        return productService.saveProduct(product);
    }

    @GetMapping("/{id}")
    public Product getProduct(@PathVariable Long id) {
        return productService.getProductById(id);
    }

    @GetMapping
    public List<Product> getAllProducts() {
        return productService.getAllProducts();
    }

    @DeleteMapping("/{id}")
    public String deleteProduct(@PathVariable Long id) {
        productService.deleteProductById(id);
        return "Product deleted successfully.";
    }
}

সারাংশ

JpaRepository এর save(), findById(), findAll(), এবং deleteById() মেথডগুলো স্প্রিং বুটে ডেটাবেস অপারেশন সহজ করে। এগুলোর মাধ্যমে ডেটা সঞ্চয়, আপডেট, রিড এবং ডিলিট করা যায়। এই মেথডগুলো ব্যবহার করে অ্যাপ্লিকেশন ডেটাবেস পরিচালনায় একটি অবজেক্ট-অরিয়েন্টেড পদ্ধতি অনুসরণ করে।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...